]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
Add patch from libgvc to fix a regression for non-Bluetooth devices
authorSimon McVittie <smcv@debian.org>
Sun, 15 Feb 2026 17:28:58 +0000 (17:28 +0000)
committerSimon McVittie <smcv@debian.org>
Sun, 15 Feb 2026 17:28:58 +0000 (17:28 +0000)
debian/patches/mixer-control-Only-stream-id-for-bluetooth-devices-only.patch [new file with mode: 0644]
debian/patches/series

diff --git a/debian/patches/mixer-control-Only-stream-id-for-bluetooth-devices-only.patch b/debian/patches/mixer-control-Only-stream-id-for-bluetooth-devices-only.patch
new file mode 100644 (file)
index 0000000..f32593f
--- /dev/null
@@ -0,0 +1,50 @@
+From: =?utf-8?q?Guido_G=C3=BCnther?= <agx@sigxcpu.org>
+Date: Fri, 6 Feb 2026 18:24:26 +0100
+Subject: mixer-control: Only stream-id for bluetooth devices only
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 8bit
+
+They're the only ones that merely flip ports and clearing it for
+other devices breaks e.g. lineout and headphone combinations.
+
+Fixes: 8bf60ee ("mixer-control: Reset `stream-id`s on UI devices")
+
+Bug: https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/issues/40
+Signed-off-by: Guido Günther <agx@sigxcpu.org>
+---
+ subprojects/gvc/gvc-mixer-control.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/subprojects/gvc/gvc-mixer-control.c b/subprojects/gvc/gvc-mixer-control.c
+index 4576484..57dc2d4 100644
+--- a/subprojects/gvc/gvc-mixer-control.c
++++ b/subprojects/gvc/gvc-mixer-control.c
+@@ -1218,7 +1218,8 @@ add_stream (GvcMixerControl *control,
+ static gboolean
+ match_stream_with_devices (GvcMixerControl    *control,
+                            GvcMixerStreamPort *stream_port,
+-                           GvcMixerStream     *stream)
++                           GvcMixerStream     *stream,
++                           gboolean            is_bluetooth)
+ {
+         g_autoptr (GList)        devices = NULL;
+         guint                    stream_card_id;
+@@ -1279,7 +1280,7 @@ match_stream_with_devices (GvcMixerControl    *control,
+                                         in_possession = TRUE;
+                                 } else {
+                                         /* Other UI devices on that card that match the stream can't be valid */
+-                                        if (device_stream_id == stream_id) {
++                                        if (device_stream_id == stream_id && is_bluetooth) {
+                                                 g_object_set (G_OBJECT (device),
+                                                               "stream-id", GVC_MIXER_UI_DEVICE_INVALID,
+                                                               NULL);
+@@ -1390,7 +1391,7 @@ sync_devices (GvcMixerControl *control,
+                 GvcMixerStreamPort *stream_port;
+                 stream_port = n->data;
+ 
+-                if (match_stream_with_devices (control, stream_port, stream))
++                if (match_stream_with_devices (control, stream_port, stream, is_bluetooth))
+                         continue;
+ 
+                 g_warning ("Sync_devices: Failed to match stream id: %u, description: '%s', origin: '%s'",
index 8c91da106f1ea1bc45c5b4894d02a5abc06ba7d4..388d5d4a5309df421f7240a2d345a27e17e9bcf9 100644 (file)
@@ -1,3 +1,4 @@
 shell-app-Warn-instead-of-crashing-if-disposed-before-sta.patch
 debian/Revert-tests-Fail-on-warnings-too.patch
 debian/data-Add-im-config.desktop-to-System-folder.patch
+mixer-control-Only-stream-id-for-bluetooth-devices-only.patch